vb怎么让窗体点击"显示桌面"后也不最小化?

来源:百度知道 编辑:UC知道 时间:2024/05/10 09:23:18
vb怎么让窗体点击"显示桌面"后也不最小化?
或者怎么让窗体显示桌面最小化后立即返回原来的状态。。

比较复杂,需要拦截窗口函数

方法如下,XP SP3测试成功

新建一个标准模块,代码如下:

Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Const WM_WINDOWPOSCHANGED = &H47
Public Const GWL_WNDPROC = (-4)
Public oldProc As Long
Public Function WinProc(ByVal nhWnd As Long,